Artificial intelligence (AI) can enable computers to perform various complicated tasks, such as those related to cognitive functions that are typically associated with humans. These functions often involve making predictions or assessments based on real-world inputs. Several approaches to AI are prevalent, including machine learning techniques. Machine learning systems, in at least some examples, may be trained using known data sets rather than employing a specific predetermined algorithm to perform a task.
One machine learning model, referred to as an artificial neural network (ANN), is inspired by the interconnections of neurons in a biological brain. Typically, ANNs include multiple computational nodes arranged in interconnected layers, with each node modeling a neuron that may receive one or more inputs, process the inputs, and pass an output to the next layer, with the final layer producing a desired output. In some examples, each node may assign a weight to each of its inputs and then combine (e.g., sum) the weighted inputs to produce a result from that node. For example, if a task involves identifying a particular object in an image, filter weights may be trained to correspond to a probability that the input image includes the object.
To this end, ANNs and other machine learning systems may employ multiple dedicated hardware processing elements that may include multiply-accumulate (MAC) units or matrix-multiplication units to perform vector-vector multiplication and/or matrix-matrix multiplication operations (e.g., dot-product operations), thus making the use of machine learning systems more feasible, especially for complex tasks related to computer vision or natural language processing. Nonetheless, despite the use of such specialized processing hardware, emerging machine learning techniques may tax existing processing systems due to the typically enormous volume of computations that such systems are often expected to perform.